package twoD.hofem;

/**
 * A function basis on the standard element [-1, 1]^2. This is basically a set
 * of functions S = {v1, v2, ..., vn} where vi: R^2->R.
 * 
 * @author Matthias Baitsch
 */
public interface FunctionBasisOnR2ToR {

	/**
	 * Returns the specified basis function.
	 * 
	 * @param idx
	 *            index of the basis function
	 * @return the basis function
	 */
	public FunctionR2ToR getBasisFunction(int idx);

	/**
	 * Returns all basis functions.
	 * 
	 * @return an array of functions
	 */
	public FunctionR2ToR[] getBasisFunctions();

	/**
	 * Returns the number of basis functions.
	 * 
	 * @return the dimension
	 */
	public int getDimension();
}
